Cours 12
Cluster Proxmox, pourquoi ? 🤔
En fait, pour comprendre pourquoi il est essentiel de créer un cluster Proxmox en entreprise, il suffit d'imaginer ce qui pourrait se produire si nous n'en avions pas. Imaginons, par exemple, un serveur Proxmox hébergeant 10 machines virtuelles. Sans cluster on risquerait:
- Une panne matérielle : Carte mère grillée → Plusieurs jours d'arrêt
- Maintenance : Mise à jour du serveur → Interruption de service
- Saturation : Plus de ressources → Impossible d'ajouter des VMs
La solution : le cluster
Le clustering, c'est la création d'une équipe de serveurs qui travaillent ensemble en vue d'atteindre des objectifs communs. Cette façon de fonctionner comporte de nombreux avantages:
- Haute disponibilité: Une VM redémarre ailleurs si son serveur hôte plante.
- Migration à chaud: D éplacer une VM sans l'arrêter
- Maintenance sans interruption: Redémarrer un serveur sans impact
- Gestion centralisée: Un seul point d'administration
- Évolutivité: Ajouter des serveurs facilement
Cluster Proxmox
├── Serveur 1 : VM 1, VM 4, VM 7
├── Serveur 2 : VM 2, VM 5, VM 8
└── Serveur 3 : VM 3, VM 6, VM 9
Si Serveur 1 tombe → VMs redémarrent automatiquement sur Serveur 2 ou 3 !
Quand considérer le clustering ?
Vous DEVEZ considérer un cluster si:
- Vos applications ne peuvent pas s'arrêter (sites web, BDD critiques)
- Vous gérez plus de 5-10 VMs importantes
- Vous avez besoin de faire des maintenances sans interruption
- Votre entreprise dépend de ces VMs
Qu'est-ce qu'un cluster ? 🚒
Règle général: J'aime bien les analogies. Ici, je vais vous comparer le clustering à une équipe de pompiers. Imaginez si la caserne de votre ville ne contenait qu'un seul pompier:
- Il peut éteindre qu'un seul feu à la fois.
- Advenant qu'il soit malade, il n'y a personne pour intervenir.
- S'il est déjà en intervention, il ne peut pas répondre pour un autre urgence.
- Sa force physique est limité.
Maintenant, avec trois pompiers, on change la dynamique:
- Si un pompier est indisponible, un autre prend le relais.
- Ils peuvent gérer plus d'un incendie à la fois.
- Ils se coordonnent par radio.
- Ils peuvent se partager de l'équipement.
Le clustering c'est exactement ça, mais dans le domaine des technologies de l'information:
- Les serveurs Proxmox communiquent entre eux via ce qu'on appelle un heartbeat toutes les secondes 💓. En gros les serveurs veillent les uns sur les autres pour s'assurer que tout le monde va bien.
- Les serveurs Proxmox partagent leurs informations à l'aide d'une base de données distribuée nommée Corosync ( corosync comporte plusieurs services ). Cette base de donnée contient la liste des VMs ainsi que leur emplacement, l'état de santé de chaque noeud, la configuration du cluster, les ressources disponibles, etc.
- Les serveurs prennent également des décisions collectivement. Par exemple, si le noeud #2 croit que le noeud #1 est en panne, un « vote » aura lieu entre les noeuds restant pour déterminer si oui, ou non, le noeud #1 est en panne. Si c'est le cas, d'autres actions s'initieront.
Les composants d'un cluster Proxmox
Les noeuds 🪢
Nous en avons déjà parlé, il s'agit des membres (serveurs) qui composent le groupe (cluster). Chaque serveur Proxmox dans un cluster est donc appelé un noeud (node).
Corosync
Il s'agit d'un système de communication open source comprenant des fonctionnalités supplémentaires pour la mise en oeuvre de la haute-disponibilité. Il gère les heartbeats ainsi que la base de donnée répliquée, entre autre choses.
Quorum 🗳️
Le quorum correspond à la majorité des serveurs. Lorsque des décisions critiques sont prises, comme redémarrez des VMs depuis un autre noeud, le quorum doit s'exprimer favorablement.
Stockage partagé
Un stockage accessible par tous les noeuds assure qu'une VM peut être démarré sur n'importe quel serveur.
Un cluster n'est PAS ❌ | Un cluster EST ✅ |
---|---|
Une sauvegarde. Un cluster ne remplace pas les backups | Une solution de haute disponibilité. |
Une protection contre les erreurs humaines. Supprimer une VM la supprime partout | Une facilité de gestion centralisée. |
Gratuit en ressources. Le clustering consomme des ressources physiques pour se coordonner. | Une protection contre les pannes matérielles. |
Simple à maintenir. C'est plus complexe qu'un serveur unique. | Une capacité de migration à chaud. |
Comment ça fonctionne ⚙️
Architecture technique
Un cluster Proxmox repose sur 3 technologies clés:
-
Corosync: La communication
Corosync = Le système nerveux du cluster
Nœud 1 → "Heartbeat : Je suis vivant" → Nœud 2, Nœud 3
Nœud 2 → "Heartbeat : Je suis vivant" → Nœud 1, Nœud 3
Nœud 3 → "Heartbeat : Je suis vivant" → Nœud 1, Nœud 2
Fréquence : Toutes les secondes
Si pas de réponse après 10 secondes → Nœud considéré mort -
Corosync Configuration Database (corosync.conf)
Base de données distribuée qui stocke :
├── Configuration du cluster
├── Liste des nœuds
├── VMs et leur emplacement
├── Ressources HA
└── Paramètres réseau
Synchronisée automatiquement entre tous les nœuds -
Proxmox Cluster File System (pmxcfs)
Système de fichiers spécial monté sur /etc/pve/
├── Accessible en lecture/écriture sur tous les nœuds
├── Modifications répliquées automatiquement
└── Contient toute la configuration du cluster
Exemple : Créer une VM sur nœud 1 → Visible immédiatement sur nœud 2 et 3